package com.wl.config;

import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import org.yaml.snakeyaml.Yaml;

import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Paths;

public class SettingConfig {

  // 泛型方法，适应任何类型的数据
  public static <T> T readYamlFile(String yamlKey, Class<T> valueType) {
    // 创建yaml对象
    Yaml yaml = new Yaml();
    // 读取yaml文件
    try (InputStream in = Files.newInputStream(Paths.get("src/main/resources/setting.yaml"))) {
      // 将流加载为对象
      Object loaded = yaml.load(in);
      // 在这里处理你的YAML内容
      System.out.println("读取的yaml内容: " + loaded);
      // 将yaml转换成json
      JSONObject yamlJsons = JSONUtil.parseObj(loaded);
      System.out.println("读取yaml转换的json: " + yamlJsons);
      // 根据指定的key获取对应的数据，并转换为指定类型
      T result = yamlJsons.get(yamlKey, valueType);
      System.out.println("读取的yaml数据为：" + result + "\n");
      return result;
    } catch (Exception e) {
      throw new RuntimeException("yaml文件读取错误请检查文件样式", e);
    }
  }
}
